The Global Positioning System (GPS) includes 24 satellites, orbiting the earth. Each travels in a precise orbit, approximately 11,000 miles above the earth's surface. A GPS receiver locks on to signals transmitted by at least 3 of the satellites, and using these signals is able to determine its precise location.
Each satellite transmits two spread spectrum carrier signals, L1 and L2. The L1 signal is centered on 1575.42 MHz, while the L2 signal is centered on 1227.60 MHz. The L1 signal, typically used for non-military applications, is modulated with a unique coarse/acquisition (C/A) pseudo-random noise (PRN) code and a precision (P) PRN code. Each C/A code is a sequence of 1023 chips, transmitted at 1.023 MHz (or 1023 chips per millisecond). L2, which is typically used for military applications, is modulated using only the P code. Each satellite typically periodically alternates between transmitting its C/A code and the inverse of its C/A code. Because each satellite uses a unique PRN code, a plurality of GPS satellite signals transmitted at the same frequency may be received and distinguished by a suitable GPS receiver.
The GPS receiver receives the L1, L2 and/or other signals from a particular satellite, and determines the distance from the particular satellite by determining the phase shift in the received PRN code (commonly referred to as the C/A or PRN code phase). The code phase is determined with respect to the delay in chips or fractions of chips that the satellite transmission experiences as it travels from the particular satellite to the receiver. The receiver determines the code phase by correlating shifted versions of the known C/A code for the particular satellite with the C/A code from the received signal. The shifted version that maximizes the degree of correlation with the received signal identifies the code phase. The receiver then calculates the time delay associated with the determined code phase. The distance from the receiver to the satellite may then be calculated by multiplying the time delay by the speed of the transmission (which equals the speed of light).
The GPS receiver knows the precise orbits of each of the satellites of the GPS. It uses this information to define a sphere around a satellite from which it has received a signal, with the radius of the sphere equal to the distance from the receiver to the satellite. The receiver may be located anywhere on the surface of this sphere. The receiver repeats this process for at least three satellites, resulting in definitions of three intersecting spheres. The surfaces of the three spheres can only intersect at two distinct points with known latitude, longitude, and altitude, one of which must be the receiver's location. Usually, one of the two distinct points can be ruled out by the receiver as an impossible location (e.g. a latitude, longitude, or altitude measurement that is not located on or near the earth's surface), resulting in the final determination of the receiver's location. Alternatively, a fourth satellite signal may be used to correct for timing uncertainties, thereby allowing the determination of the exact location of the GPS receiver.
The satellites continue to move around their orbits as their signals are transmitted. The signal received by a GPS receiver therefore changes with time, according to the movement of the satellite. This change, known as the Doppler Shift (DS), is the apparent change in the frequency of a signal caused by the relative movement between the satellite and the receiver. The frequency shift will be positive if the satellite and receiver are moving toward each other, and negative if the satellite and receiver are moving away from each other. GPS receivers must adjust the received signal to account for the change in frequency caused by the DS.
In addition to frequency changes caused by satellite movement, the frequency of the signal at the receiver can be affected by the movement of the receiver and by atmospheric differences. Thus, although the original signal is transmitted at the L1 frequency 1575.42 MHz, the frequency of the signal once it has reached the receiver may have changed by 4-5 kHz. Therefore the receiver may have to search over several frequencies to locate and lock on to the signal from a satellite.
Conventionally, the most accurate digital method for calculating location from satellite receivers is post-processing. This method requires the use of a buffer for storing received data. The buffer is processed after the data has been collected and stored, since data can be collected at a faster rate than it can be processed. Processing methods are variable, with a general purpose of correlating the data with stored C/A codes, in order to identify the particular satellite associated with each satellite signal, and calculate the code phase of each signal. From this information, the distance from the satellite may be computed as described above. Generally, greater amounts of collected data result in increased signal gain and more accurate processing results. However, the size of the memory buffer limits the amount of data that can be collected for processing. Large memory devices are more expensive and consume more power than small memory devices, while small memory devices limit amount of data that can be collected for processing, and thus the amount of possible gain on the search results, limiting usage in low signal to noise ratio (SNR) environments.
A second method used for satellite positioning system receivers involves parallel processing of collected signals. This requires hardware duplication in order to process multiple signals simultaneously. While this allows for real-time processing of multiple time delays, frequency bins, or satellites simultaneously, it also results in a significantly larger and more expensive device, with high energy consumption.
Both of these methods are limited in their effectiveness for use in portable devices, where both size and energy consumption are of paramount importance.